home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 January - Disc 2 / Macworld (1999-01) (Disk 2).dmg / Serious Demos / Symbolic Composer 4.2 / Environment / System / CRESC / Lengths / align-to-symbol < prev    next >
Lisp/Scheme  |  1996-12-31  |  1KB  |  27 lines

  1. align-to-symbol symbol-pattern length-pattern/value
  2.  
  3. This function changes note-lengths to note-length rests to align with pause-symbols when they occur in a symbol-pattern.
  4.  
  5. (align-to-symbol '(a = c = d = f) 
  6.                  '(1/8 1/8 1/8 1/8 1/8 1/8 1/8))
  7. --> (1/8 -1/8 1/8 -1/8 1/8 -1/8 1/8)
  8.  
  9. The output can then be used as a rhythmic variant produced directly from the symbol-pattern. This can be invaluable when processing with find-change or find-beat, and when devising variants with length-condense. By setting a length-value rather than length-pattern the function automatically builds a list of that value of equal length to the symbol- pattern and then processes it.
  10.  
  11. (setq melody
  12.       (find-change
  13.        (vector-to-symbol a g 
  14.                   (gen-sin 1 0.5 24 90 (gen-sin 1 0.3 24)))))
  15.  
  16. --> (d e f = g = = f = e = d = = = c = = b = a = = c)
  17.  
  18. (setq lengths (align-to-symbol melody '1/8))
  19.       
  20. --> (1/8 1/8 1/8 -1/8 1/8 -1/8 -1/8 1/8 -1/8 1/8 -1/8 1/8 
  21.      -1/8 -1/8 -1/8 1/8 -1/8 -1/8 1/8 -1/8 1/8 -1/8 -1/8 1/8)
  22.  
  23. (setq accompaniment (length-condense lengths)) 
  24. --> (3/8 -1/8 1/8 -1/4 1/8 -1/8 1/8 -1/8 1/8 -3/8 1/8 -1/4 
  25.      1/8 -1/8 1/8 -1/4 1/8)
  26.  
  27.